﻿/***********************************************************************
*
* NAME:        BallFireEvent.cs
*
* PROJECT:     Battle Core Events Library
*
* COMPILER:    Microsoft Visual Studio .NET 2005
*
* DESCRIPTION: Ball Fire Event implementation.
*
* NOTES:       None.
*
* HISTORY:
* DATE      AUTHOR       CHANGES
* --------  ---------    -------------------------------------------------
* 01-04-13  lightbender  Initial Creation
*
************************************************************************/

// Namespace usage
using System;

// Namespace 
namespace BattleCore.Events
{
    /// <summary>
    /// BallFireEvent object.
    /// </summary>
    /// <remarks>
    /// <para>
    /// Usage: Create an instance of this to have the bot fire the ball it is carrying.</para>
    /// </remarks>
    public class BallFireEvent : EventArgs
    {
        private String m_strPlayerName;  // Player Name
        private UInt32 m_nTimeStamp;     // Time Stamp
        private UInt16 m_nPositionX;     // X map position
        private UInt16 m_nPositionY;     // Y map position
        private UInt16 m_nPlayerId;      // Player identifier
        private UInt16 m_nVelocityX;     // Player X Velocity
        private UInt16 m_nVelocityY;     // Player Y Velocity
        private Byte m_nBallId;        // Ball identifier

        ///<summary>Player name Property</summary>
        public String PlayerName
        {
            set { m_strPlayerName = value; }
            get { return m_strPlayerName; }
        }

        ///<summary>Player Identifier Property</summary>
        public UInt16 PlayerId
        {
            set { m_nPlayerId = value; }
            get { return m_nPlayerId; }
        }

        ///<summary>Player Timestamp Property</summary>
        public UInt32 TimeStamp
        {
            set { m_nTimeStamp = value; }
            get { return m_nTimeStamp; }
        }

        ///<summary>Map Postion X Property</summary>
        public UInt16 MapPositionX
        {
            set { m_nPositionX = value; }
            get { return m_nPositionX; }
        }

        ///<summary>Map Postion Y Property</summary>
        public UInt16 MapPositionY
        {
            set { m_nPositionY = value; }
            get { return m_nPositionY; }
        }

        ///<summary>Player X Velocity Property</summary>
        public UInt16 VelocityX
        {
            set { m_nVelocityX = value; }
            get { return m_nVelocityX; }
        }

        ///<summary>Player Y Velocity Property</summary>
        public UInt16 VelocityY
        {
            set { m_nVelocityY = value; }
            get { return m_nVelocityY; }
        }

        ///<summary>Ball Identifier Property</summary>
        public Byte BallId
        {
            set { m_nBallId= value; }
            get { return m_nBallId; }
        }
    }
}
